package com.bosssoft.goods.dao;

import com.bosssoft.goods.domain.vo.StGoodUpdateVO;
import com.bosssoft.goods.domain.dto.StGoodsItemDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 商品购物车数据层操作接口
 * @author Fang_Sir
 * @date 2021-04-21
 */
@Repository
public interface ShoppingTrolleyDao {

    /**
     * 添加商品
     * @param info 商品购买信息
     * @return 返回数据更新行数
     */
    int addGood(StGoodUpdateVO info);

    /**
     * 更改购物车商品数量
     * @param uid 用户编号
     * @param good_id 商品编号
     * @param qty 更改的商品数量
     * @return
     */
    int updateQty(@Param("uid") long uid,@Param("goodId") long good_id,@Param("qty") int qty);

    /**
     * 获取购物车列表
     * @param uid 用户编号
     * @return {@link StGoodsItemDTO} 列表
     */
    List<StGoodsItemDTO> getShoppingTrolleyList(@Param("uid") long uid);

    /**
     * 获取购物车列表
     * @param uid 用户编号
     * @param gids 商品编号
     * @return {@link StGoodsItemDTO} 列表
     */
    List<StGoodsItemDTO> getStListByGoodIds(@Param("uid") long uid,@Param("gids") long[] gids);

    /**
     * 获取购物车商品数据
     * @param uid 用户编号
     * @param good_id 商品编号
     * @return {@link StGoodsItemDTO}
     */
    StGoodsItemDTO getGoodWithoutInfo(@Param("uid") long uid, @Param("goodId") long good_id);

    /**
     * 是否用户已添加购物车
     * @param uid 用户编号
     * @param good_id 商品编号
     * @return 返回查找到的数据
     */
    int isAddedGood(@Param("uid") long uid,@Param("goodId") long good_id);

    /**
     * 删除购物车商品
     * @param uid 用户编号
     * @param goodIds 商品编号列列表
     * @return 返回更改数据行数
     */
    int removeGood(@Param("uid") long uid,@Param("gids") long[] goodIds);
}
